const http = require('http');
const fs = require('fs');
const path = require('path');

const port = 8080;
const h5Dir = path.join(__dirname, 'dist', 'build', 'h5');

const mimeTypes = {
  '.html': 'text/html',
  '.js': 'text/javascript',
  '.css': 'text/css',
  '.png': 'image/png',
  '.jpg': 'image/jpeg',
  '.gif': 'image/gif',
  '.ico': 'image/x-icon'
};

const server = http.createServer((req, res) => {
  let filePath = path.join(h5Dir, req.url);
  
  // 如果请求的是目录，则返回index.html
  if (req.url === '/' || req.url === '') {
    filePath = path.join(h5Dir, 'index.html');
  }
  
  // 检查文件是否存在
  fs.access(filePath, fs.constants.F_OK, (err) => {
    if (err) {
      // 文件不存在，返回404
      res.writeHead(404, { 'Content-Type': 'text/html' });
      res.end('<h1>404 - 文件未找到</h1>');
      return;
    }
    
    // 获取文件扩展名
    const ext = path.extname(filePath);
    const mimeType = mimeTypes[ext] || 'text/plain';
    
    // 读取并返回文件
    fs.readFile(filePath, (err, content) => {
      if (err) {
        res.writeHead(500);
        res.end('服务器内部错误');
        return;
      }
      
      res.writeHead(200, { 
        'Content-Type': mimeType,
        'Access-Control-Allow-Origin': '*'
      });
      res.end(content);
    });
  });
});

server.listen(port, () => {
  console.log(`🚀 智能闹钟测试服务器已启动！`);
  console.log(`📱 请在浏览器中访问: http://localhost:${port}`);
  console.log(`⏰ 您可以在浏览器中测试闹钟功能`);
  console.log(`📱 建议使用Chrome浏览器的开发者工具模拟手机设备`);
  console.log(`\n按 Ctrl+C 停止服务器`);
});
